package com.swak.ui;

import com.swak.utils.FileUtils;
import com.swak.utils.StringUtils;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 文件类型
 * 
 * @author DELL
 */
@Getter
@RequiredArgsConstructor
public enum Media {

	/**
	 * 图片
	 */
	Image(new String[] { "jpg", "jpeg", "png", "gif", "bmp" }),

	/**
	 * 压缩文件
	 */
	Zip(new String[] { "zip", "rar", "7z" }),

	/**
	 * 视频文件
	 */
	Video(new String[] { "avi", "mp4", "rmvb", "flv", "mov", "m2v", "mkv" }),

	/**
	 * 音频文件
	 */
	Audio(new String[] { "mp3", "wav", "wmv", "wma" }),

	/**
	 * Excel
	 */
	Excel(new String[] { "xls", "xlsx" }),

	/**
	 * Word
	 */
	Word(new String[] { "doc", "docx" }),

	/**
	 * PPT
	 */
	Ppt(new String[] { "ppt", "pptx" }),

	/**
	 * PDF
	 */
	Pdf(new String[] { "pdf" }),

	/**
	 * 文本文档
	 */
	Txt(new String[] { "txt" }),

	/**
	 * 其他
	 */
	Other(new String[] { StringUtils.EMPTY }),

	/**
	 * 其他
	 */
	Folder(new String[] { StringUtils.EMPTY });

	/**
	 * 扩展名
	 */
	public final String[] exts;

	/**
	 * 判断文件的类型
	 * 
	 * @param file
	 * @return
	 */
	public static Media of(String file) {
		String suffix = FileUtils.getFileSuffix(file);
		if (StringUtils.isBlank(suffix)) {
			return Media.Other;
		}
		suffix = suffix.toLowerCase();
		for (Media m : Media.values()) {
			for (String ext : m.exts) {
				if (ext.equals(suffix)) {
					return m;
				}
			}
		}
		return Media.Other;
	}
}
